Segmentation d’images cérébrales Histogrammes et masques
Avec la librairie opencv, calculez l’histogramme de l’image « irm1_cut.jpg » et affichez-le avec la librairie matplotlib.
from matplotlib import pyplot as plt
import cv2
irm1_cut = cv2.imread('data/irm1_cut.jpg',0)
# irm1_cut = cv2.cvtColor(irm1_cut, cv2.COLOR_RGB2GRAY)
plt.imshow(irm1_cut),plt.title('irm1_cut')
## (<matplotlib.image.AxesImage object at 0x000000002417B438>, Text(0.5,1,'irm1_cut'))
plt.show()
plt.hist(irm1_cut.ravel(), 256, [0,256]), plt.title("histogramme de l image irm1_cut.jpg")
## ((array([5.2390e+03, 2.7252e+04, 3.5227e+04, 9.1200e+03, 3.0680e+03,
## 1.6800e+03, 1.2430e+03, 1.0430e+03, 1.0320e+03, 9.8900e+02,
## 9.1700e+02, 8.7600e+02, 7.7600e+02, 8.0900e+02, 7.8500e+02,
## 7.5200e+02, 7.3700e+02, 7.4700e+02, 7.2800e+02, 7.0600e+02,
## 7.3600e+02, 6.3500e+02, 6.7600e+02, 6.1300e+02, 6.5100e+02,
## 6.4200e+02, 6.4800e+02, 6.1600e+02, 5.5400e+02, 5.9700e+02,
## 5.4900e+02, 5.0200e+02, 5.1200e+02, 5.1700e+02, 4.6600e+02,
## 4.8000e+02, 4.8800e+02, 5.0400e+02, 4.9000e+02, 5.1500e+02,
## 5.6400e+02, 5.6300e+02, 5.7800e+02, 6.5500e+02, 6.9000e+02,
## 6.9100e+02, 7.5000e+02, 8.0500e+02, 8.6900e+02, 9.5600e+02,
## 1.1650e+03, 1.3370e+03, 1.5020e+03, 1.9350e+03, 2.0670e+03,
## 1.9560e+03, 1.8190e+03, 1.4370e+03, 1.2410e+03, 1.1020e+03,
## 9.6400e+02, 9.3000e+02, 8.7400e+02, 8.7300e+02, 8.3800e+02,
## 7.5600e+02, 7.3200e+02, 7.4900e+02, 6.2900e+02, 6.9600e+02,
## 6.3600e+02, 6.5000e+02, 6.2500e+02, 5.6900e+02, 5.9500e+02,
## 5.9400e+02, 5.9400e+02, 6.1000e+02, 5.7500e+02, 4.7000e+02,
## 5.1700e+02, 4.9200e+02, 5.3000e+02, 5.0000e+02, 4.6900e+02,
## 5.1200e+02, 4.7900e+02, 4.8600e+02, 4.7400e+02, 4.8200e+02,
## 4.9100e+02, 4.7400e+02, 5.0700e+02, 4.8100e+02, 4.9700e+02,
## 4.9800e+02, 5.4100e+02, 5.1100e+02, 5.3800e+02, 5.4900e+02,
## 5.2300e+02, 5.3500e+02, 5.3300e+02, 6.0000e+02, 5.5400e+02,
## 6.4000e+02, 6.2600e+02, 6.3300e+02, 6.9700e+02, 6.7900e+02,
## 6.8600e+02, 7.5500e+02, 7.5900e+02, 8.2500e+02, 8.2400e+02,
## 9.2700e+02, 1.0170e+03, 9.4000e+02, 1.1190e+03, 1.2290e+03,
## 1.3370e+03, 1.4050e+03, 1.5170e+03, 1.5730e+03, 1.8310e+03,
## 1.8140e+03, 1.8480e+03, 1.9420e+03, 2.0370e+03, 2.0910e+03,
## 2.2720e+03, 2.4280e+03, 2.6310e+03, 2.8420e+03, 2.9930e+03,
## 2.9940e+03, 2.8720e+03, 2.7590e+03, 2.5540e+03, 2.1490e+03,
## 1.8440e+03, 1.4790e+03, 1.2740e+03, 1.2450e+03, 1.1120e+03,
## 1.0380e+03, 9.6700e+02, 9.8100e+02, 9.1400e+02, 9.0600e+02,
## 9.0300e+02, 8.5700e+02, 8.4300e+02, 8.5000e+02, 8.7300e+02,
## 8.6900e+02, 7.9200e+02, 8.4200e+02, 8.4600e+02, 8.3600e+02,
## 8.1600e+02, 9.1600e+02, 9.1600e+02, 9.3900e+02, 1.0380e+03,
## 1.0980e+03, 1.1090e+03, 1.2520e+03, 1.4620e+03, 1.6110e+03,
## 1.8440e+03, 2.2130e+03, 2.4760e+03, 2.4870e+03, 2.7920e+03,
## 2.8850e+03, 2.8280e+03, 2.9720e+03, 3.3490e+03, 3.5710e+03,
## 4.1330e+03, 5.0720e+03, 5.9090e+03, 6.3150e+03, 6.3940e+03,
## 5.9080e+03, 4.3500e+03, 2.5760e+03, 1.3130e+03, 5.7500e+02,
## 2.4900e+02, 1.5000e+02, 1.3200e+02, 1.1400e+02, 1.0700e+02,
## 9.7000e+01, 1.0600e+02, 9.1000e+01, 8.1000e+01, 8.2000e+01,
## 7.8000e+01, 7.0000e+01, 8.4000e+01, 6.6000e+01, 6.3000e+01,
## 6.4000e+01, 6.3000e+01, 5.4000e+01, 6.4000e+01, 5.9000e+01,
## 5.9000e+01, 5.6000e+01, 5.0000e+01, 6.6000e+01, 5.4000e+01,
## 5.6000e+01, 6.0000e+01, 5.6000e+01, 6.3000e+01, 6.7000e+01,
## 5.8000e+01, 5.9000e+01, 6.4000e+01, 6.3000e+01, 5.4000e+01,
## 5.9000e+01, 6.2000e+01, 4.1000e+01, 4.3000e+01, 5.1000e+01,
## 4.5000e+01, 3.4000e+01, 4.3000e+01, 5.6000e+01, 4.2000e+01,
## 4.6000e+01, 4.0000e+01, 3.6000e+01, 2.9000e+01, 3.4000e+01,
## 2.5000e+01, 3.8000e+01, 3.1000e+01, 3.9000e+01, 3.3000e+01,
## 3.1000e+01, 3.8000e+01, 3.5000e+01, 3.6000e+01, 3.3000e+01,
## 2.8000e+01, 3.7000e+01, 3.3000e+01, 5.3000e+01, 4.5000e+01,
## 1.2900e+02]), array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.,
## 11., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21.,
## 22., 23., 24., 25., 26., 27., 28., 29., 30., 31., 32.,
## 33., 34., 35., 36., 37., 38., 39., 40., 41., 42., 43.,
## 44., 45., 46., 47., 48., 49., 50., 51., 52., 53., 54.,
## 55., 56., 57., 58., 59., 60., 61., 62., 63., 64., 65.,
## 66., 67., 68., 69., 70., 71., 72., 73., 74., 75., 76.,
## 77., 78., 79., 80., 81., 82., 83., 84., 85., 86., 87.,
## 88., 89., 90., 91., 92., 93., 94., 95., 96., 97., 98.,
## 99., 100., 101., 102., 103., 104., 105., 106., 107., 108., 109.,
## 110., 111., 112., 113., 114., 115., 116., 117., 118., 119., 120.,
## 121., 122., 123., 124., 125., 126., 127., 128., 129., 130., 131.,
## 132., 133., 134., 135., 136., 137., 138., 139., 140., 141., 142.,
## 143., 144., 145., 146., 147., 148., 149., 150., 151., 152., 153.,
## 154., 155., 156., 157., 158., 159., 160., 161., 162., 163., 164.,
## 165., 166., 167., 168., 169., 170., 171., 172., 173., 174., 175.,
## 176., 177., 178., 179., 180., 181., 182., 183., 184., 185., 186.,
## 187., 188., 189., 190., 191., 192., 193., 194., 195., 196., 197.,
## 198., 199., 200., 201., 202., 203., 204., 205., 206., 207., 208.,
## 209., 210., 211., 212., 213., 214., 215., 216., 217., 218., 219.,
## 220., 221., 222., 223., 224., 225., 226., 227., 228., 229., 230.,
## 231., 232., 233., 234., 235., 236., 237., 238., 239., 240., 241.,
## 242., 243., 244., 245., 246., 247., 248., 249., 250., 251., 252.,
## 253., 254., 255., 256.]), <a list of 256 Patch objects>), Text(0.5,1,'histogramme de l image irm1_cut.jpg'))
plt.show()
x = irm1_cut.ravel()
Avec la librairie numpy, calculez l’histogramme de l’image « irm1_cut.jpg » et affichez-le avec la librairie matplotlib.
import numpy as np
histogram, bin_edges = np.histogram(irm1_cut, bins = 256, range = (0, 256))
plt.plot(bin_edges[0:-1], histogram)
plt.show()
Avec la librairie opencv, affichez l’histogramme à l’intérieur de chaque tissu cérébral. Vous utiliserez pour cela l’image « irm1_cut.jpg » et le masque de la région d’intérêt.
mask = cv2.imread('data/wm_cut.jpg', 0)
mask_r = cv2.resize(mask, (irm1_cut.shape[1], irm1_cut.shape[0]))
And = cv2.bitwise_and(irm1_cut, mask_r)
plt.hist(And.ravel(), 256, [0, 256]); plt.show()
## (array([2.14252e+05, 6.80600e+03, 3.80400e+03, 8.10000e+02, 1.73600e+03,
## 5.01000e+02, 5.27000e+02, 1.91000e+02, 1.67400e+03, 5.30000e+02,
## 6.21000e+02, 1.71000e+02, 4.91000e+02, 1.73000e+02, 1.77000e+02,
## 5.30000e+01, 1.69700e+03, 5.87000e+02, 5.24000e+02, 1.81000e+02,
## 5.03000e+02, 1.72000e+02, 1.79000e+02, 4.50000e+01, 4.68000e+02,
## 1.39000e+02, 1.37000e+02, 3.40000e+01, 1.37000e+02, 3.80000e+01,
## 4.40000e+01, 9.00000e+00, 2.82000e+02, 9.40000e+01, 7.80000e+01,
## 2.00000e+01, 4.20000e+01, 1.00000e+01, 1.40000e+01, 0.00000e+00,
## 1.80000e+01, 6.00000e+00, 3.00000e+00, 2.00000e+00, 5.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 1.40000e+01, 3.00000e+00,
## 5.00000e+00, 2.00000e+00, 6.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 2.00000e+00, 2.00000e+00, 1.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 6.00000e+00,
## 3.00000e+00, 1.00000e+00, 1.00000e+00, 4.00000e+00, 0.00000e+00,
## 1.00000e+00, 1.00000e+00, 2.00000e+00, 0.00000e+00, 1.00000e+00,
## 0.00000e+00, 1.00000e+00, 0.00000e+00, 0.00000e+00, 1.00000e+00,
## 8.00000e+00, 1.00000e+00, 3.00000e+00, 0.00000e+00, 1.00000e+00,
## 0.00000e+00, 2.00000e+00, 0.00000e+00, 1.00000e+00, 2.00000e+00,
## 1.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 4.00000e+00, 1.00000e+00, 1.00000e+00, 0.00000e+00,
## 1.00000e+00, 1.00000e+00, 0.00000e+00, 0.00000e+00, 1.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 2.00000e+00, 1.00000e+00, 2.00000e+00,
## 1.00000e+00, 1.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 1.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 2.35300e+03, 8.01000e+02,
## 8.03000e+02, 2.29000e+02, 8.12000e+02, 3.02000e+02, 2.98000e+02,
## 9.70000e+01, 9.00000e+02, 2.98000e+02, 2.86000e+02, 1.21000e+02,
## 2.87000e+02, 1.00000e+02, 1.09000e+02, 3.20000e+01, 5.41000e+02,
## 1.88000e+02, 1.84000e+02, 7.50000e+01, 1.88000e+02, 7.30000e+01,
## 6.70000e+01, 2.40000e+01, 1.92000e+02, 7.10000e+01, 7.20000e+01,
## 1.80000e+01, 8.00000e+01, 3.20000e+01, 3.10000e+01, 1.30000e+01,
## 2.63000e+03, 8.67000e+02, 8.92000e+02, 3.01000e+02, 1.04900e+03,
## 3.97000e+02, 3.97000e+02, 1.72000e+02, 1.59600e+03, 7.56000e+02,
## 1.18200e+03, 7.98000e+02, 2.16500e+03, 1.22900e+03, 1.88900e+03,
## 1.25200e+03, 3.81000e+03, 2.18600e+03, 3.06300e+03, 2.03900e+03,
## 5.05700e+03, 3.98100e+03, 5.71400e+03, 4.66600e+03, 7.14400e+03,
## 5.05000e+03, 4.25200e+03, 2.11400e+03, 1.21400e+03, 4.18000e+02,
## 1.40000e+02, 5.10000e+01, 1.70000e+01, 5.00000e+00, 2.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00]), array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.,
## 11., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21.,
## 22., 23., 24., 25., 26., 27., 28., 29., 30., 31., 32.,
## 33., 34., 35., 36., 37., 38., 39., 40., 41., 42., 43.,
## 44., 45., 46., 47., 48., 49., 50., 51., 52., 53., 54.,
## 55., 56., 57., 58., 59., 60., 61., 62., 63., 64., 65.,
## 66., 67., 68., 69., 70., 71., 72., 73., 74., 75., 76.,
## 77., 78., 79., 80., 81., 82., 83., 84., 85., 86., 87.,
## 88., 89., 90., 91., 92., 93., 94., 95., 96., 97., 98.,
## 99., 100., 101., 102., 103., 104., 105., 106., 107., 108., 109.,
## 110., 111., 112., 113., 114., 115., 116., 117., 118., 119., 120.,
## 121., 122., 123., 124., 125., 126., 127., 128., 129., 130., 131.,
## 132., 133., 134., 135., 136., 137., 138., 139., 140., 141., 142.,
## 143., 144., 145., 146., 147., 148., 149., 150., 151., 152., 153.,
## 154., 155., 156., 157., 158., 159., 160., 161., 162., 163., 164.,
## 165., 166., 167., 168., 169., 170., 171., 172., 173., 174., 175.,
## 176., 177., 178., 179., 180., 181., 182., 183., 184., 185., 186.,
## 187., 188., 189., 190., 191., 192., 193., 194., 195., 196., 197.,
## 198., 199., 200., 201., 202., 203., 204., 205., 206., 207., 208.,
## 209., 210., 211., 212., 213., 214., 215., 216., 217., 218., 219.,
## 220., 221., 222., 223., 224., 225., 226., 227., 228., 229., 230.,
## 231., 232., 233., 234., 235., 236., 237., 238., 239., 240., 241.,
## 242., 243., 244., 245., 246., 247., 248., 249., 250., 251., 252.,
## 253., 254., 255., 256.]), <a list of 256 Patch objects>)
wm = And.ravel()
library(plotly)
## Warning: package 'plotly' was built under R version 3.6.3
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 3.6.3
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
library(ggplot2)
ggplotly(
ggplot(data.frame(grayLevels = as.numeric(py$wm))) +
geom_density(aes(x = grayLevels)) +
labs(title = 'wm_cut')
)
mask = cv2.imread('data/gm_cut.jpg', 0)
mask_r = cv2.resize(mask, (irm1_cut.shape[1], irm1_cut.shape[0]))
And = cv2.bitwise_and(irm1_cut, mask_r)
plt.hist(And.ravel(), 256, [0, 256]); plt.show()
## (array([2.23652e+05, 7.77600e+03, 4.42800e+03, 1.05600e+03, 2.44700e+03,
## 7.80000e+02, 6.79000e+02, 2.26000e+02, 2.11600e+03, 6.86000e+02,
## 6.42000e+02, 2.41000e+02, 6.51000e+02, 2.06000e+02, 1.89000e+02,
## 7.10000e+01, 1.43200e+03, 4.52000e+02, 4.34000e+02, 1.60000e+02,
## 4.44000e+02, 1.35000e+02, 1.43000e+02, 4.40000e+01, 3.90000e+02,
## 1.54000e+02, 1.63000e+02, 5.90000e+01, 1.79000e+02, 5.70000e+01,
## 6.30000e+01, 1.90000e+01, 2.62500e+03, 8.09000e+02, 8.79000e+02,
## 2.89000e+02, 8.13000e+02, 2.62000e+02, 2.57000e+02, 7.70000e+01,
## 7.71000e+02, 2.70000e+02, 2.47000e+02, 6.20000e+01, 2.29000e+02,
## 6.70000e+01, 6.60000e+01, 2.10000e+01, 3.71000e+02, 1.37000e+02,
## 8.70000e+01, 2.60000e+01, 9.40000e+01, 1.50000e+01, 2.70000e+01,
## 1.20000e+01, 3.80000e+01, 1.60000e+01, 2.00000e+01, 3.00000e+00,
## 8.00000e+00, 3.00000e+00, 3.00000e+00, 1.00000e+00, 1.35100e+03,
## 4.59000e+02, 4.52000e+02, 1.68000e+02, 5.32000e+02, 1.72000e+02,
## 1.64000e+02, 5.70000e+01, 4.64000e+02, 1.58000e+02, 1.86000e+02,
## 5.60000e+01, 1.60000e+02, 5.50000e+01, 5.10000e+01, 2.30000e+01,
## 8.49000e+02, 2.91000e+02, 3.18000e+02, 1.05000e+02, 3.25000e+02,
## 1.21000e+02, 1.08000e+02, 4.10000e+01, 4.16000e+02, 1.24000e+02,
## 1.21000e+02, 4.60000e+01, 1.53000e+02, 4.70000e+01, 3.70000e+01,
## 1.10000e+01, 9.01000e+02, 3.26000e+02, 3.16000e+02, 1.31000e+02,
## 3.53000e+02, 1.18000e+02, 1.43000e+02, 4.00000e+01, 4.68000e+02,
## 1.64000e+02, 2.10000e+02, 7.20000e+01, 2.05000e+02, 8.10000e+01,
## 7.50000e+01, 3.40000e+01, 5.09000e+02, 1.86000e+02, 2.28000e+02,
## 9.10000e+01, 2.96000e+02, 1.00000e+02, 1.33000e+02, 3.70000e+01,
## 4.68000e+02, 2.04000e+02, 3.10000e+02, 1.08000e+02, 7.44000e+02,
## 3.47000e+02, 5.64000e+02, 1.83000e+02, 7.55700e+03, 2.67500e+03,
## 3.31800e+03, 1.12600e+03, 4.66400e+03, 1.84000e+03, 2.67500e+03,
## 8.16000e+02, 4.88900e+03, 1.81600e+03, 2.17700e+03, 6.42000e+02,
## 1.75600e+03, 4.86000e+02, 4.85000e+02, 1.48000e+02, 1.84300e+03,
## 6.15000e+02, 5.80000e+02, 1.76000e+02, 4.51000e+02, 1.21000e+02,
## 1.13000e+02, 3.70000e+01, 3.10000e+02, 1.03000e+02, 8.30000e+01,
## 1.70000e+01, 5.60000e+01, 1.30000e+01, 1.20000e+01, 2.00000e+00,
## 7.00000e+01, 1.80000e+01, 9.00000e+00, 3.00000e+00, 2.00000e+00,
## 0.00000e+00, 1.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00]), array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.,
## 11., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21.,
## 22., 23., 24., 25., 26., 27., 28., 29., 30., 31., 32.,
## 33., 34., 35., 36., 37., 38., 39., 40., 41., 42., 43.,
## 44., 45., 46., 47., 48., 49., 50., 51., 52., 53., 54.,
## 55., 56., 57., 58., 59., 60., 61., 62., 63., 64., 65.,
## 66., 67., 68., 69., 70., 71., 72., 73., 74., 75., 76.,
## 77., 78., 79., 80., 81., 82., 83., 84., 85., 86., 87.,
## 88., 89., 90., 91., 92., 93., 94., 95., 96., 97., 98.,
## 99., 100., 101., 102., 103., 104., 105., 106., 107., 108., 109.,
## 110., 111., 112., 113., 114., 115., 116., 117., 118., 119., 120.,
## 121., 122., 123., 124., 125., 126., 127., 128., 129., 130., 131.,
## 132., 133., 134., 135., 136., 137., 138., 139., 140., 141., 142.,
## 143., 144., 145., 146., 147., 148., 149., 150., 151., 152., 153.,
## 154., 155., 156., 157., 158., 159., 160., 161., 162., 163., 164.,
## 165., 166., 167., 168., 169., 170., 171., 172., 173., 174., 175.,
## 176., 177., 178., 179., 180., 181., 182., 183., 184., 185., 186.,
## 187., 188., 189., 190., 191., 192., 193., 194., 195., 196., 197.,
## 198., 199., 200., 201., 202., 203., 204., 205., 206., 207., 208.,
## 209., 210., 211., 212., 213., 214., 215., 216., 217., 218., 219.,
## 220., 221., 222., 223., 224., 225., 226., 227., 228., 229., 230.,
## 231., 232., 233., 234., 235., 236., 237., 238., 239., 240., 241.,
## 242., 243., 244., 245., 246., 247., 248., 249., 250., 251., 252.,
## 253., 254., 255., 256.]), <a list of 256 Patch objects>)
gm = And.ravel()
library(plotly)
library(ggplot2)
ggplotly(
ggplot(data.frame(grayLevels = as.numeric(py$gm))) +
geom_density(aes(x = grayLevels)) +
labs(title = 'gm_cut')
)
mask = cv2.imread('data/csf_cut.jpg', 0)
mask_r = cv2.resize(mask, (irm1_cut.shape[1], irm1_cut.shape[0]))
And = cv2.bitwise_and(irm1_cut, mask_r)
plt.hist(And.ravel(), 256, [0, 256]); plt.show()
## (array([2.63491e+05, 8.33100e+03, 4.21500e+03, 9.16000e+02, 1.84400e+03,
## 5.52000e+02, 4.41000e+02, 1.43000e+02, 1.22500e+03, 3.85000e+02,
## 4.12000e+02, 1.31000e+02, 4.61000e+02, 1.53000e+02, 1.59000e+02,
## 4.90000e+01, 1.44400e+03, 4.98000e+02, 5.34000e+02, 2.06000e+02,
## 5.29000e+02, 2.02000e+02, 1.88000e+02, 6.00000e+01, 6.12000e+02,
## 1.74000e+02, 1.88000e+02, 7.10000e+01, 2.18000e+02, 7.60000e+01,
## 7.10000e+01, 2.00000e+01, 1.23100e+03, 4.42000e+02, 4.48000e+02,
## 1.37000e+02, 4.96000e+02, 1.76000e+02, 1.95000e+02, 6.70000e+01,
## 6.48000e+02, 2.30000e+02, 2.50000e+02, 9.10000e+01, 2.91000e+02,
## 1.24000e+02, 1.28000e+02, 4.00000e+01, 1.29200e+03, 5.25000e+02,
## 7.67000e+02, 3.30000e+02, 1.50500e+03, 9.03000e+02, 1.40000e+03,
## 6.34000e+02, 1.86000e+03, 6.59000e+02, 6.64000e+02, 1.65000e+02,
## 5.27000e+02, 1.84000e+02, 2.23000e+02, 6.20000e+01, 2.86900e+03,
## 9.91000e+02, 8.98000e+02, 3.18000e+02, 8.55000e+02, 2.90000e+02,
## 2.60000e+02, 9.60000e+01, 8.00000e+02, 2.62000e+02, 2.53000e+02,
## 5.90000e+01, 2.54000e+02, 7.70000e+01, 8.30000e+01, 2.00000e+01,
## 3.93000e+02, 1.14000e+02, 1.04000e+02, 4.30000e+01, 9.80000e+01,
## 3.60000e+01, 1.70000e+01, 1.40000e+01, 9.90000e+01, 4.20000e+01,
## 4.10000e+01, 8.00000e+00, 4.10000e+01, 1.60000e+01, 1.10000e+01,
## 7.00000e+00, 7.28000e+02, 2.24000e+02, 2.44000e+02, 8.00000e+01,
## 2.34000e+02, 7.80000e+01, 8.70000e+01, 2.40000e+01, 1.87000e+02,
## 5.00000e+01, 3.80000e+01, 1.40000e+01, 2.60000e+01, 1.00000e+01,
## 1.30000e+01, 0.00000e+00, 2.60000e+01, 5.00000e+00, 7.00000e+00,
## 2.00000e+00, 4.00000e+00, 1.00000e+00, 1.00000e+00, 1.00000e+00,
## 1.00000e+00, 0.00000e+00, 1.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 1.00000e+00, 0.00000e+00,
## 1.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,
## 0.00000e+00]), array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.,
## 11., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21.,
## 22., 23., 24., 25., 26., 27., 28., 29., 30., 31., 32.,
## 33., 34., 35., 36., 37., 38., 39., 40., 41., 42., 43.,
## 44., 45., 46., 47., 48., 49., 50., 51., 52., 53., 54.,
## 55., 56., 57., 58., 59., 60., 61., 62., 63., 64., 65.,
## 66., 67., 68., 69., 70., 71., 72., 73., 74., 75., 76.,
## 77., 78., 79., 80., 81., 82., 83., 84., 85., 86., 87.,
## 88., 89., 90., 91., 92., 93., 94., 95., 96., 97., 98.,
## 99., 100., 101., 102., 103., 104., 105., 106., 107., 108., 109.,
## 110., 111., 112., 113., 114., 115., 116., 117., 118., 119., 120.,
## 121., 122., 123., 124., 125., 126., 127., 128., 129., 130., 131.,
## 132., 133., 134., 135., 136., 137., 138., 139., 140., 141., 142.,
## 143., 144., 145., 146., 147., 148., 149., 150., 151., 152., 153.,
## 154., 155., 156., 157., 158., 159., 160., 161., 162., 163., 164.,
## 165., 166., 167., 168., 169., 170., 171., 172., 173., 174., 175.,
## 176., 177., 178., 179., 180., 181., 182., 183., 184., 185., 186.,
## 187., 188., 189., 190., 191., 192., 193., 194., 195., 196., 197.,
## 198., 199., 200., 201., 202., 203., 204., 205., 206., 207., 208.,
## 209., 210., 211., 212., 213., 214., 215., 216., 217., 218., 219.,
## 220., 221., 222., 223., 224., 225., 226., 227., 228., 229., 230.,
## 231., 232., 233., 234., 235., 236., 237., 238., 239., 240., 241.,
## 242., 243., 244., 245., 246., 247., 248., 249., 250., 251., 252.,
## 253., 254., 255., 256.]), <a list of 256 Patch objects>)
csf = And.ravel()
library(plotly)
library(ggplot2)
ggplotly(
ggplot(data.frame(grayLevels = as.numeric(py$csf))) +
geom_density(aes(x = grayLevels)) +
labs(title = 'csf_cut')
)
Affichez dans un même graphique l’histogramme global de l’image ainsi que les histogrammes de chaque région d’intérêt.
x = as.numeric(py$x)
wm = as.numeric(py$wm)
gm = as.numeric(py$gm)
csf = as.numeric(py$csf)
data = data.frame(
x = c(x, wm, gm, csf),
mask = c(rep('IRM',length(x)),
rep('White Matter',length(wm)),
rep('Gray Matter',length(gm)),
rep('Cerebrospinal fluid',length(csf))
)
)
ggplotly(
ggplot(data) +
geom_density(aes(x = x, fill = factor(mask), alpha = 0.5)) +
facet_grid(mask~.) +
xlim(1, 256)
)
## Warning: Removed 706634 rows containing non-finite values (stat_density).
ggplotly(
ggplot(data) +
geom_density(aes(x = x, fill = factor(mask), alpha = 0.5))
)